package com.it.reggie.dto;

import com.it.reggie.entity.Setmeal;
import com.it.reggie.entity.SetmealDish;
import lombok.Data;
import java.util.List;

@Data
public class SetmealDto extends Setmeal {



/**
 *  还是和菜品管理时新增菜品的操作是一样的。
 *
 *      1、  这里因为DTO实体类继承了Setmeal实体类，我们知道Setmeal实体类中的属性是专门用来封装套餐表数据的
 *          （也就是我们前面客户端传递的数据红色框起来的那部分数据，是可以封装到Setmeal实体类属性当中，然后存入到setmeal套餐表数据库中的）
 *          因此该DTO实体类继承了Setmeal实体类，也就是说该DTO实体类就有了Setmeal实体类的属性，可以说该DTO实体类可以接收前端请求传递的套餐数据了（红色框起来的）
 *
 *      2、  又因为这个DTO实体类有一个setmealDishes集合属性，又因为集合泛型是SetmealDish实体类，我们知道SetmealDish实体类中的属性就是专门封装客户端请求携带过来
 *           的那套餐菜品数据的（也就是紫色部分的数据），因此接收过来后，就可以保存到setmeal_dish数据库当中了（因为setmeal_dish数据库对应的实体类就是SetmealDish）
 *           又因为套餐菜品数据有可能是多条数据，因此我们就把该接收套餐菜品数据的属性用了集合的形式，也就是说把客户端请求的数据封装到SetmealDish实体类属性当中，然后以
 *           对象的形式封装在List集合中。最终这个DTO实体类就能接收封装到前端传递过来的套餐菜品的所有数据了。
 *
 *              3、这就是客户端请求携带的四条套餐菜品数据：
 *                  这些数据的 copies、dishId、name、price....对应的就是套餐菜品实体类SetmealDish的属性，因此可以把这客户端请求的数据封装在SetmealDish的属性中
 *                  然后以 对象 的形式存入到List集合中 （因为数据多，所以以集合的时候储存）
 *
 *              0: {copies: 1, dishId: "1397854865672679425", name: "鱼香炒鸡蛋", price: 2000}
 *              1: {copies: 1, dishId: "1397854652581064706", name: "麻辣水煮鱼", price: 14800}
 *              2: {copies: 1, dishId: "1568582209071792129", name: "毛蛋", price: 2000}
 *              3: {copies: 1, dishId: "1413385247889891330", name: "米饭", price: 200}
 *
 *
 *      总结： 因此最终我们这个DTO实体类就可以接收到前端传递请求时携带的所有数据了。
*/
    private List<SetmealDish> setmealDishes;

    private String categoryName;
}
